package SparkExercises;

import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.function.Function;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;

public class ZuoYe3 {
    public static void main(String[] args) {
        SparkSession session = SparkSession.builder().appName(ZuoYe3.class.getName()).master("local").getOrCreate();
        Dataset<Row> dataset = session.read().json("./data/can_data2.json");

        Dataset<Row> where = dataset.where("collectTime rlike '2022-01-02' and speed >= 100");

        // SUBSTRING ( character_expression , start , length )
        //函数说明：SUBSTRING ( 字段名, ‘截取起始位置(含该位置上的字符)’ , ‘截取长度’ )
//        where.selectExpr("vin","SUBSTRING(collectTime,1,10) as `日期`", "speed").show();

        // LEFT ( character_expression , integer_expression )
        //函数说明：LEFT ( 字段名 , ‘要截取最左边的字符数’ )
        //返回从字符串左边开始指定个数的字符
//        where.selectExpr("vin","LEFT(collectTime, 10) as `日期`", "speed").show();

//        substring_index(字符串,分隔符,序号)
//        参数说明
//        string：用于截取目标字符串的字符串。可为字段，表达式等。
//        sep：分隔符，string存在且用于分割的字符，比如“，”、“.”等。
//        num：序号，为非0整数。若为整数则表示从左到右数，若为负数则从右到左数。比如“www.mysql.com”截取字符‘www’，分割符为“.”，从左到右序号为1，即substring_index("www.mysql.com",'.',1)；若从右开始获取“com”则为序号为-1即

        where.selectExpr("vin","substring_index(collectTime,' ',1) as `日期`","speed").show();



    }
}

